Temporal.PlainDate
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Das Temporal.PlainDate
-Objekt repräsentiert ein Kalenderdatum (ein Datum ohne Uhrzeit oder Zeitzone); zum Beispiel ein Ereignis in einem Kalender, das den ganzen Tag lang passiert, unabhängig davon, in welcher Zeitzone es stattfindet. Es wird grundsätzlich als ISO 8601-Kalenderdatum dargestellt, mit Jahres-, Monats- und Tagesfeldern und einem zugehörigen Kalendersystem.
Beschreibung
Ein PlainDate
ist im Wesentlichen der Datenteil eines Temporal.PlainDateTime
-Objekts, wobei die Zeitinformationen entfernt wurden. Da das Datum und die Zeitinformationen wenig miteinander interagieren, sind alle allgemeinen Informationen zu Datumeigenschaften hier dokumentiert.
RFC 9557-Format
PlainDate
-Objekte können im RFC 9557-Format serialisiert und analysiert werden, einer Erweiterung des ISO 8601 / RFC 3339-Formats. Der String hat die folgende Form (Leerzeichen dienen nur der Lesbarkeit und sollten im tatsächlichen String nicht vorhanden sein):
YYYY-MM-DD [u-ca=calendar_id]
YYYY
-
Entweder eine vierstellige Zahl oder eine sechsstellige Zahl mit einem
+
oder-
Zeichen. MM
-
Eine zweistellige Zahl von
01
bis12
. DD
-
Eine zweistellige Zahl von
01
bis31
. DieYYYY
,MM
undDD
Komponenten können durch-
oder nichts getrennt werden. [u-ca=calendar_id]
Optional-
Ersetzen Sie
calendar_id
durch den zu verwendenden Kalender. Eine Liste der häufig unterstützten Kalendertypen finden Sie unterIntl.supportedValuesOf()
. Standardmäßig wird[u-ca=iso8601]
verwendet. Es kann ein kritisches Flag vorhanden sein, indem der Schlüssel mit!
vorangestellt wird: z.B.,[!u-ca=iso8601]
. Dieses Flag weist andere Systeme im Allgemeinen darauf hin, dass es nicht ignoriert werden kann, wenn sie es nicht unterstützen. DerTemporal
-Parser wird einen Fehler auslösen, wenn die Anmerkungen zwei oder mehr Kalenderanmerkungen enthalten und eine davon kritisch ist. Beachten Sie, dass dasYYYY-MM-DD
immer als ISO 8601-Kalenderdatum interpretiert und dann in den angegebenen Kalender konvertiert wird.
Als Eingabe können Sie optional die Zeit, den Offset und die Zeitzonenkennung im gleichen Format wie PlainDateTime
einschließen, aber sie werden ignoriert. Andere Anmerkungen im [key=value]
-Format werden ebenfalls ignoriert und dürfen das kritische Flag nicht haben.
Beim Serialisieren können Sie konfigurieren, ob die Kalender-ID angezeigt und ob ein kritisches Flag hinzugefügt werden soll.
Ungültige Datumseingrenzung
Die Methoden Temporal.PlainDate.from()
, Temporal.PlainDate.prototype.with()
, Temporal.PlainDate.prototype.add()
und Temporal.PlainDate.prototype.subtract()
, sowie deren Gegenstücke in anderen Temporal
-Objekten, ermöglichen das Konstruieren von Daten mit kalenderspezifischen Eigenschaften. Die Datumskomponenten können außerhalb des Bereichs liegen. Im ISO-Kalender ist dies immer ein Overflow, wie z.B. ein Monat, der größer als 12 ist, oder ein Tag, der größer als die Anzahl der Tage ist, und die Korrektur erfolgt nur durch Begrenzung des Wertes auf den maximal zulässigen Wert. In anderen Kalendern kann der ungültige Fall komplexer sein. Bei Verwendung der Option overflow: "constrain"
werden ungültige Daten auf folgende Weise korrigiert:
- Wenn der Tag nicht existiert, aber der Monat existiert: Wählen Sie den nächstgelegenen Tag im gleichen Monat. Wenn es zwei gleich nahestehende Daten in diesem Monat gibt, wählen Sie das spätere aus.
- Wenn der Monat ein Schaltmonat ist, der im Jahr nicht existiert: Wählen Sie ein anderes Datum gemäß den kulturellen Konventionen der Nutzer dieses Kalenders aus. Normalerweise führt dies zum gleichen Tag im Monat davor oder danach, wo dieser Monat normalerweise in einem Schaltjahr fällt.
- Wenn der Monat aus anderen Gründen im Jahr nicht existiert: Wählen Sie das nächstgelegene Datum, das sich noch im selben Jahr befindet. Wenn es zwei gleich nahestehende Daten in diesem Jahr gibt, wählen Sie das spätere aus.
- Wenn das gesamte Jahr nicht existiert: Wählen Sie das nächstgelegene Datum in einem anderen Jahr. Wenn es zwei gleich nahestehende Daten gibt, wählen Sie das spätere aus.
Konstruktor
Temporal.PlainDate()
Experimentell-
Erstellt ein neues
Temporal.PlainDate
-Objekt, indem die zugrunde liegenden Daten direkt bereitgestellt werden.
Statische Methoden
Temporal.PlainDate.compare()
Experimentell-
Gibt eine Zahl (-1, 0 oder 1) zurück, die angibt, ob das erste Datum vor, am gleichen Tag oder nach dem zweiten Datum liegt. Entspricht dem Vergleich der Jahr-, Monat- und Tagesfelder der zugrunde liegenden ISO 8601-Daten.
Temporal.PlainDate.from()
Experimentell-
Erstellt ein neues
Temporal.PlainDate
-Objekt aus einem anderenTemporal.PlainDate
-Objekt, einem Objekt mit Datumeigenschaften oder einem RFC 9557-String.
Instanz-Eigenschaften
Diese Eigenschaften sind auf Temporal.PlainDate.prototype
definiert und werden von allen Temporal.PlainDate
-Instanzen geteilt.
Temporal.PlainDate.prototype.calendarId
Experimentell-
Gibt einen String zurück, der den zur Interpretation des internen ISO 8601-Datums verwendeten Kalender darstellt.
Temporal.PlainDate.prototype.constructor
-
Die Konstrukturfunktion, die das Instanzobjekt erstellt hat. Für
Temporal.PlainDate
-Instanzen ist der Anfangswert derTemporal.PlainDate()
-Konstruktor. Temporal.PlainDate.prototype.day
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tagindex im Monat dieses Datums darstellt, was der gleichen Tageszahl entspricht, die Sie auf einem Kalender sehen würden. Kalender-abhängig. Beginnt im Allgemeinen bei 1 und ist kontinuierlich, jedoch nicht immer.
Temporal.PlainDate.prototype.dayOfWeek
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tagindex in der Woche dieses Datums darstellt. Tage in einer Woche sind fortlaufend von
1
bisdaysInWeek
nummeriert, wobei jede Zahl ihrem Namen zugeordnet ist. Kalender-abhängig. 1 repräsentiert normalerweise Montag im Kalender, selbst wenn die Kalendersprache einen anderen Tag als den ersten Tag der Woche betrachtet (sieheIntl.Locale.prototype.getWeekInfo()
). Temporal.PlainDate.prototype.dayOfYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tagindex im Jahr dieses Datums darstellt. Der erste Tag dieses Jahres ist
1
, und der letzte Tag ist derdaysInYear
. Kalender-abhängig. Temporal.PlainDate.prototype.daysInMonth
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Tage im Monat dieses Datums darstellt. Kalender-abhängig.
Temporal.PlainDate.prototype.daysInWeek
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Tage in der Woche dieses Datums darstellt. Kalender-abhängig. Für den ISO 8601-Kalender sind dies immer 7, aber in anderen Kalendersystemen kann es von Woche zu Woche unterschiedlich sein.
Temporal.PlainDate.prototype.daysInYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Tage im Jahr dieses Datums darstellt. Kalender-abhängig. Für den ISO 8601-Kalender sind es 365, oder 366 in einem Schaltjahr.
Temporal.PlainDate.prototype.era
Experimentell-
Gibt einen kalenderspezifischen Kleinbuchstaben-String zurück, der die Ära dieses Datums darstellt, oder
undefined
, wenn der Kalender keine Ären verwendet (z.B. ISO 8601).era
underaYear
identifizieren zusammen eindeutig ein Jahr in einem Kalender, in derselben Weise wieyear
. Kalender-abhängig. Für den Gregorianer ist es entweder"gregory"
oder"gregory-inverse"
. Temporal.PlainDate.prototype.eraYear
Experimentell-
Gibt eine nicht-negative Ganzzahl zurück, die das Jahr dieses Datums innerhalb der Ära darstellt, oder
undefined
, wenn der Kalender keine Ären verwendet (z.B. ISO 8601). Der Jahrindex beginnt normalerweise bei 1 (häufiger) oder 0, und Jahre in einer Ära können mit der Zeit abnehmen (z.B. Gregorianischer BCE).era
underaYear
identifizieren zusammen eindeutig ein Jahr in einem Kalender, in derselben Weise wieyear
. Kalender-abhängig. Temporal.PlainDate.prototype.inLeapYear
Experimentell-
Gibt einen Boolean-Wert zurück, der angibt, ob dieses Datum in einem Schaltjahr liegt. Ein Schaltjahr ist ein Jahr, das mehr Tage hat (aufgrund eines Schaltages oder Schaltmonats) als ein normales Jahr. Kalender-abhängig.
Temporal.PlainDate.prototype.month
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Monatindex im Jahr dieses Datums darstellt. Der erste Monat dieses Jahres ist
1
, und der letzte Monat ist dermonthsInYear
. Kalender-abhängig. Beachten Sie, dass im Gegensatz zuDate.prototype.getMonth()
der Index 1-basiert ist. Wenn der Kalender Schaltmonate hat, dann kann der Monat mit dem gleichenmonthCode
unterschiedlichemonth
-Indizes für verschiedene Jahre haben. Temporal.PlainDate.prototype.monthCode
Experimentell-
Gibt einen kalenderspezifischen String zurück, der den Monat dieses Datums darstellt. Kalender-abhängig. Normalerweise ist es
M
plus eine zweistellige Monatszahl. Für Schaltmonate ist es der Code des vorherigen Monats gefolgt vonL
. Wenn der Schaltmonat der erste Monat des Jahres ist, lautet der CodeM00L
. Temporal.PlainDate.prototype.monthsInYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Monate im Jahr dieses Datums darstellt. Kalender-abhängig. Für den ISO 8601-Kalender sind es immer 12, aber in anderen Kalendersystemen kann es variieren.
Temporal.PlainDate.prototype.weekOfYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Wochenindex im
yearOfWeek
dieses Datums darstellt, oderundefined
, wenn der Kalender kein eindeutig definiertes Wochensystem hat. Die erste Woche des Jahres ist1
. Kalender-abhängig. Beachten Sie, dass für ISO 8601 die ersten und letzten Tage des Jahres der letzten Woche des vorherigen Jahres oder der ersten Woche des nächsten Jahres zugeordnet sein können. Temporal.PlainDate.prototype.year
Experimentell-
Gibt eine Ganzzahl zurück, die die Anzahl der Jahre dieses Datums relativ zum Beginn eines kalenderspezifischen Epochenjahres darstellt. Kalender-abhängig. Normalerweise ist das Jahr 1 entweder das erste Jahr der neuesten Ära oder das ISO 8601-Jahr
0001
. Wenn die Epoche mitten im Jahr liegt, hat dieses Jahr denselben Wert vor und nach dem Anfangsdatum der Ära. Temporal.PlainDate.prototype.yearOfWeek
Experimentell-
Gibt eine Ganzzahl zurück, die das Jahr darstellt, das mit der
weekOfYear
dieses Datums gepaart werden soll, oderundefined
, wenn der Kalender kein eindeutig definiertess Wochensystem hat. Kalender-abhängig. Normalerweise ist dies das Jahr des Datums, aber für ISO 8601 können die ersten und letzten Tage des Jahres der letzten Woche des vorherigen Jahres oder der ersten Woche des nächsten Jahres zugeordnet sein, was dazu führt, dass sichyearOfWeek
um 1 unterscheidet. Temporal.PlainDate.prototype[Symbol.toStringTag]
-
Der Anfangswert der
[Symbol.toStringTag]
-Eigenschaft ist die Zeichenkette"Temporal.PlainDate"
. Diese Eigenschaft wird inObject.prototype.toString()
verwendet.
Instanz-Methoden
Temporal.PlainDate.prototype.add()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum darstellt, verschoben um eine gegebene Dauer (in einer Form, die durchTemporal.Duration.from()
konvertierbar ist). Temporal.PlainDate.prototype.equals()
Experimentell-
Gibt
true
zurück, wenn dieses Datum einen Wert hat, der einem anderen Datum entspricht (in einer Form, die durchTemporal.PlainDate.from()
konvertierbar ist), undfalse
andernfalls. Sie werden sowohl durch ihre Datumswerte als auch durch ihre Kalender verglichen. Temporal.PlainDate.prototype.since()
Experimentell-
Gibt ein neues
Temporal.Duration
-Objekt zurück, das die Dauer von einem anderen Datum (in einer Form, die durchTemporal.PlainDate.from()
konvertierbar ist) zu diesem Datum darstellt. Die Dauer ist positiv, wenn das andere Datum vor diesem Datum liegt, und negativ, wenn danach. Temporal.PlainDate.prototype.subtract()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum darstellt, verschoben um eine gegebene Dauer nach hinten (in einer Form, die durchTemporal.Duration.from()
konvertierbar ist). Temporal.PlainDate.prototype.toJSON()
Experimentell-
Gibt einen String zurück, der dieses Datum in demselben RFC 9557-Format darstellt wie bei einem Aufruf von
toString()
. Soll implizit durchJSON.stringify()
aufgerufen werden. Temporal.PlainDate.prototype.toLocaleString()
Experimentell-
Gibt einen String mit einer sprachsensitiven Darstellung dieses Datums zurück.
Temporal.PlainDate.prototype.toPlainDateTime()
Experimentell-
Gibt ein neues
Temporal.PlainDateTime
-Objekt zurück, das dieses Datum und eine angegebene Zeit im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.toPlainMonthDay()
Experimentell-
Gibt ein neues
Temporal.PlainMonthDay
-Objekt zurück, das denmonthCode
undday
dieses Datums im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.toPlainYearMonth()
Experimentell-
Gibt ein neues
Temporal.PlainYearMonth
-Objekt zurück, das dasyear
und denmonth
dieses Datums im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.toString()
Experimentell-
Gibt einen String zurück, der dieses Datum im RFC 9557-Format darstellt.
Temporal.PlainDate.prototype.toZonedDateTime()
Experimentell-
Gibt ein neues
Temporal.ZonedDateTime
-Objekt zurück, das dieses Datum, eine angegebene Zeit und eine angegebene Zeitzone im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.until()
Experimentell-
Gibt ein neues
Temporal.Duration
-Objekt zurück, das die Dauer von diesem Datum zu einem anderen Datum darstellt (in einer Form, die durchTemporal.Instant.from()
konvertierbar ist). Die Dauer ist positiv, wenn das andere Datum nach diesem Datum liegt, und negativ, wenn davor. Temporal.PlainDate.prototype.valueOf()
Experimentell-
Wirft einen
TypeError
, der verhindert, dassTemporal.PlainDate
-Instanzen implizit in primitive Werte umgewandelt werden, wenn sie in arithmetischen oder Vergleichsoperationen verwendet werden. Temporal.PlainDate.prototype.with()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum mit einigen Feldern, die durch neue Werte ersetzt wurden, darstellt. Temporal.PlainDate.prototype.withCalendar()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum im neuen Kalendersystem interpretiert darstellt.
Spezifikationen
Specification |
---|
Temporal # sec-temporal-plaindate-objects |